#include "TADNIF.h"

#include <stdio.h>
#include <conio.h>
#include <string.h>

 char crearletra(unsigned long);



char crearletra(unsigned long numeroNIF)
{
	int valormod=0;
	char Ns=0;
	
	valormod = numeroNIF % 23;
	switch (valormod) 
	{
		case 0:
			Ns='T';
			//bandera=1;
			break;

		case 1: 
			Ns='R';
			//bandera=1;
			break;

		case 2: 
			Ns='W';
			//bandera=1;
			break;

		case 3: 
			Ns='A';
			//bandera=1;
			break;

		case 4:
			Ns='G';
			//bandera=1;
					break;
		
		case 5: 
			Ns='M';
			//bandera=1;
			break;
		
		case 6: 
			Ns='Y';
			//bandera=1;
			break;
		
		case 7:Ns='F';
			//bandera=1;
			break;

		case 8: Ns='P';
			//bandera=1;
			break;
		
		case 9: Ns='D';
			//bandera=1;
			break;
		
		case 10: Ns='X';
			//bandera=1;
			break;
		
		case 11: Ns='B';
			//bandera=1;
			break;
		
		case 12: Ns='N';
			//bandera=1;
			break;
		
		case 13: Ns='J';
			//bandera=1;
			break;
		
		case 14: Ns='Z';
			//bandera=1;
			break;
		
		case 15: Ns='S';
			//bandera=1;
			break;
		
		case 16: Ns='Q';
			//bandera=1;
			break;
		
		case 17: Ns='V';
			//bandera=1;
			break;
		
		case 18: Ns='H';
			//bandera=1;
			break;
		
		case 19: Ns='L';
			//bandera=1;
			break;
		
		case 20: Ns='C';
			//bandera=1;
			break;
		
		case 21: Ns='K';
			//bandera=1;
			break;
		
		case 22:  Ns='E';
			//bandera=1;
			break;

		default: printf("\nintentelo de nuevo :D \n");
			//bandera=0;
		
	}

	return(Ns);
}


NIF PedirNIF ()
{
	NIF N;
	int n=0;	

	while (n==0)
	{
		printf("\nIntroduzca su NIF/DNI sin la letra: ");
		flushall();
		scanf("%lu",&N.dni);
		
		N.letra=crearletra(N.dni);

		if (N.letra !=0)
		{
			n=1;
		}
	}

	return (N);
	
}

/*NIF crearNIF(int N, char letra2)
{
	NIF NIF;

	NIF.dni=N;
	NIF.letra=letra2;

	return (NIF);

}*/


void verNIF(NIF N)
{	
	printf ("\nEl NIF es: %lu%c",N.dni,N.letra);

}


void copiaNIF (NIF *Nd, NIF Nf)
{
	Nd->dni=Nf.dni;
	Nd->letra=Nf.letra;

}

int comprovarNIF (NIF N1, NIF N2 )
{
	int iguales=-1;

	if (N1.dni==N2.dni)
	{
		iguales=1;
	}
	
	return(iguales);
}

void modificarNIF (NIF *nifprueba)
{

	printf("Introduzca el nuevo numero NIF: ");
	scanf("%lu",&nifprueba->dni);

	nifprueba->letra=crearletra(nifprueba->dni);

}

int busNIF(NIF VPN,unsigned long DNI)
{
	int resultado=-1;

	if (VPN.dni==DNI)
	{
		resultado=1;	
	}

	return(resultado);

}

int compararNIF (NIF *N1,NIF *N2)
{
	/*
			printf("\n\t[1] - Decreciente");
			printf("\n\t[2] - Creaciente");
	*/
	int resultado=-1;

	if (N1->dni>N2->dni)
	{
		resultado=1;
	}

	if (N1->dni<N2->dni)
	{
		resultado=2;
	}
	
	if (N1->dni==N2->dni)
	{
		resultado=0;
	}

	return(resultado);
}

void escribirFichNIF (NIF N, FILE *dir)
{
	fprintf(dir,"%lu%c:",N.dni,N.letra);

}

void datosNIFFich(NIF *N,FILE *dir)
{
	fscanf(dir,"%lu%c%:",&N->dni,&N->letra);

}
